package com.example.turismo_pucela;

import java.io.IOException;
import java.util.ArrayList;
import java.util.Locale;

import org.xmlpull.v1.XmlPullParserException;

import android.app.Fragment;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TabHost.OnTabChangeListener;
import android.widget.TextView;
import android.widget.TabHost;
import android.widget.TabHost.TabSpec;

//Hacemos que el propio Fragment sea el que maneje los eventos tipo OnTabChangeListener (lo usaremos para
//refrescar la pestaña de favoritos cada vez que cargue por si hubiera algún cambio) para poder acceder
//a los elementos de su vista

public class LugFragment extends Fragment implements OnTabChangeListener {

	ArrayList<Lugar> lugares = null;
	ArrayList<Lugar> lugaresFav = null;
	View view = null;
	LugaresArrayAdapter adaptadorLugares = null;
	LeerXML lector = null;

	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		view = inflater.inflate(R.layout.lugares, container, false);

		lector = new LeerXML();

		// Crear Pesta�as
		TabHost pestanas = (TabHost) view.findViewById(R.id.tabhostLugares);
		pestanas.setup();

		TabSpec tab1 = pestanas.newTabSpec("Todos");
		tab1.setContent(R.id.tab1Lugares);
		View tabIndicator1 = LayoutInflater.from(this.getActivity()).inflate(
				R.layout.turismovalladolid_tab_indicator_holo, pestanas.getTabWidget(), false);
		TextView title = (TextView) tabIndicator1
				.findViewById(android.R.id.title);
		title.setText("TODOS");
		tab1.setIndicator(tabIndicator1);

		TabSpec tab2 = pestanas.newTabSpec("Favoritos");
		tab2.setContent(R.id.tab2Lugares);
		View tabIndicator2 = LayoutInflater.from(this.getActivity()).inflate(
				R.layout.turismovalladolid_tab_indicator_holo, pestanas.getTabWidget(), false);
		TextView title2 = (TextView) tabIndicator2
				.findViewById(android.R.id.title);
		title2.setText("FAVORITOS");
		tab2.setIndicator(tabIndicator2);

		pestanas.addTab(tab1);
		pestanas.addTab(tab2);

		try {
			
			Configuration conf = getResources().getConfiguration();
			
			if(conf.locale.toString().equalsIgnoreCase("es")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("en")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-en.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("fr")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-fr.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("ca")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-ca.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("de")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-de.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("eu")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-eu.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("gl")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-gl.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("it")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-it.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("nl")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-nl.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("pt")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-pt.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("ro")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-ro.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("ru")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-ru.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("sv")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-sv.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("tr")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-tr.xml");
			}else if(conf.locale.toString().equalsIgnoreCase("zh")){
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares-zh.xml");
			}else{
				lugares = lector.leerLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugares.xml");
			}

			

			
		} catch (XmlPullParserException e) {
			TextView fallo = new TextView(this.getActivity()
					.getApplicationContext());
			fallo.setText("Fallo de XML");
			LinearLayout l = (LinearLayout) view.findViewById(R.id.ly_idiomas);
			l.addView(fallo);
			e.printStackTrace();
		} catch (IOException e) {
			TextView fallo = new TextView(this.getActivity()
					.getApplicationContext());
			fallo.setText("Fallo de IO");
			LinearLayout l = (LinearLayout) view.findViewById(R.id.ly_idiomas);
			l.addView(fallo);
			e.printStackTrace();
		}

		lugaresFav = new ArrayList<Lugar>();
		// ArrayAdapter
		adaptadorLugares = new LugaresArrayAdapter(
				view.getContext(), android.R.layout.simple_list_item_1,
				lugares, lugaresFav);

		((ListView) view.findViewById(R.id.listViewLugares))
				.setAdapter(adaptadorLugares);
		
		pestanas.setOnTabChangedListener(this);
		return view;
	}

	@Override
	public void onTabChanged(String tabId) {
		//Cada vez que carguemos la pestaña favoritos, haremos que se lea el XML que contiene
		//Los lugares favoritos, por si hubiera cambiado alguno.
		if (tabId.equalsIgnoreCase("Favoritos")) {
			try {
				lugaresFav = lector.leerMisLugares(((MainActivity) getActivity())
						.getApplicationContext(), "lugaresFav.xml");
			} catch (XmlPullParserException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			LugaresFavArrayAdapter adaptador = new LugaresFavArrayAdapter(getActivity(), android.R.layout.simple_expandable_list_item_1, lugaresFav);
			((ListView) view.findViewById(R.id.lv_lugaresFav)).setAdapter(adaptador);
		}
	}
}
